package com.shrct.businessprocess.project;

import com.shrct.businessprocess.project.RCSaleCommissionPayment;
import com.shrct.businessprocess.project.RCSalesAssignment;
import com.shrct.businessprocess.project.impl.RCSaleCommissionYearPaymentImpl;
import com.shrct.businessprocess.project.proxy.RCSaleCommissionYearPaymentProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import java.util.Collection;
import java.util.Date;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCSaleCommissionYearPaymentImpl.class)
public interface RCSaleCommissionYearPayment extends IModelObject {
  public abstract Integer getYear();
  
  public abstract RCSaleCommissionYearPayment setYear(final Integer year);
  
  public abstract RCSalesAssignment getSaler();
  
  public abstract RCSaleCommissionYearPayment setSaler(final RCSalesAssignment saler);
  
  public abstract Double getComparableIncomeAmount();
  
  public abstract RCSaleCommissionYearPayment setComparableIncomeAmount(final Double comparableIncomeAmount);
  
  public abstract Double getPreDiscount();
  
  public abstract RCSaleCommissionYearPayment setPreDiscount(final Double preDiscount);
  
  public abstract Double getOwnedAmount();
  
  public abstract RCSaleCommissionYearPayment setOwnedAmount(final Double ownedAmount);
  
  public abstract Collection<RCSaleCommissionPayment> getPayments();
  
  public abstract RCSaleCommissionPayment createAndAddtoPayments();
  
  public abstract RCSaleCommissionPayment createAndAddtoPayments(final Procedure1<RCSaleCommissionPayment> updater);
  
  public abstract RCSaleCommissionYearPayment removeFromPayments(final RCSaleCommissionPayment rCSaleCommissionPayment);
  
  public abstract RCSaleCommissionYearPayment removeAllPayments();
  
  public abstract RCSaleCommissionPayment initializePayment(final Date date);
  
  public abstract void deletePayment(final RCSaleCommissionPayment payment);
  
  public abstract void update(final Procedure1<? super RCSaleCommissionYearPayment> updater);
  
  public abstract void checkValid();
  
  public abstract RCSaleCommissionYearPaymentProxy toProxy();
}
